package com.ev.asl.domain;

import com.ev.mes.vo.WorkTimeVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 组装日报表
 * @author 姚家乐
 * @since 2021/5/26 12:40
 */
@Data
@ApiModel(value = "组装日报表")
public class AssemblyDailyDO implements Serializable {
    //自增主键
    @ApiModelProperty(value = "自增主键")
    private Long       id;

    @ApiModelProperty(value = "产品id")
    private Long       materielId;
    /**
     * remarks
     */
    @ApiModelProperty(value = "备注")
    private String     remarks;

    @ApiModelProperty(value = "日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date              startDate;

    @ApiModelProperty(value = "日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date              endDate;


    /**
     * 作业时间集合（Map<String,String>）
     */
    @ApiModelProperty(value = "作业时间集合,无勤时间和事项集合")
    private String     workTimeMap2;

    /**
     * 作业时间集合（Map<String,String>）
     */
    @ApiModelProperty(value = "作业时间集合,无勤时间和事项集合")
    private List<WorkTimeVO> tableData;

    /**
     * 作业时间集合（Map<String,String>）
     */
    @ApiModelProperty(value = "作业时间集合,无勤时间和事项集合")
    private String tableDate2;
    /**
     * 日期
     */
    @ApiModelProperty(value = "日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date       indicateDate;

    /**
     * 作业时间集合（Map<String,String>）
     */
    @ApiModelProperty(value = "作业时间集合,无勤时间和事项集合")
    private String     workTimeMap;

    /**
     * 组装指示主键id
     */
    @ApiModelProperty(value = "组装指示主键id")
    private Long       aiId;

    /**
     * 组装指示编号
     */
    @ApiModelProperty(value = "组装指示编号")
    private String     aiNo;

    /**
     * 生产数量(EA)
     */
    @ApiModelProperty(value = "生产数量(EA)")
    private BigDecimal productionQty;
    /**
     * 合格数量(EA)
     */
    @ApiModelProperty(value = "合格数量(EA)")
    private BigDecimal qualifiedQty;
    /**
     * 不良数量(EA)
     * 套装件不良数量(EA)
     */
    @ApiModelProperty(value = "不良数量(EA)")
    private BigDecimal inspectionQty;
    /**
     * 套装件不良类型
     */
    @ApiModelProperty(value = "未达要因")
    private String inspectionType ;
    /**
     * 未达要因
     */
    @ApiModelProperty(value = "未达要因")
    private String undeliveredCause ;

    /**
     * 不良类型（数据字典维护）
     */
    @ApiModelProperty(value = "不良类型（数据字典维护）")
    private Integer    badType;
    /**
     * 应出勤
     */
    @ApiModelProperty(value = "应出勤")
    private Integer shouldBeAttendance;

    /**
     * 实出勤
     */
    @ApiModelProperty(value = "实出勤")
    private Integer realAttendance;
    /** 原料投入量
     * {
     * "material1":"原料1",
     * "materia2":"原料2",
     * "material3":"原料3",
     * "materia4":"原料4"
     * }
     * */
    @ApiModelProperty(value = "（List<>产品代码（子件），产品名称（子件），规格型号，使用数量（EA），不良数量（EA），不良类型，未达要因）")
    private String     feedingMaterial;

    /**
     * 特记事项
     */
    @ApiModelProperty(value = "特记事项")
    private String     specialNoteItem;

    /**
     * 编制人员id
     */
    @ApiModelProperty(value = "编制人员id")
    private Long       staffingId;

    /**
     * 编制人员姓名
     */
    @ApiModelProperty(value = "编制人员姓名")
    private String     staffingName;

    /**
     * 审查人id
     */
    @ApiModelProperty(value = "审查人id")
    private Long       auditorId;

    /**
     * 审查人姓名
     */
    @ApiModelProperty(value = "审查人姓名")
    private String     auditorName;

    /**
     * 批准人id
     */
    @ApiModelProperty(value = "批准人id")
    private Long       approverId;

    /**
     * 批准人姓名
     */
    @ApiModelProperty(value = "批准人姓名")
    private String     approverName;

    /**
     * 状态(0:未批准,1:已审查，2:已批准)
     */
    @ApiModelProperty(value = "状态(0:未批准,1:已审查，2:已批准)", hidden = true)
    private Integer    status;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人", hidden = true)
    private Long       createBy;
    /** 创建时间
     *
     */
    @ApiModelProperty(value = "创建时间", hidden = true)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date       createTime;
    /** 修改人
     *
     */
    @ApiModelProperty(value = "修改人", hidden = true)
    private Long       updateBy;
    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间", hidden = true)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date       updateTime;
    /**
     * 删除状态(0:未删除，1：已删除)
     */
    @ApiModelProperty(value = "删除状态(0:未删除，1：已删除)", hidden = true)
    private Integer    delFlag;

    @ApiModelProperty(value = "作业时间合计")
    private String     totalWorkTime;

    @ApiModelProperty(value = "无勤时间合计")
    private String     totalNoWorkTime;

    @ApiModelProperty(value = "合计人数")
    private Integer   totalPersonCount;

    @ApiModelProperty(value = "总的合计时间")
    private String     totalAllTime;

    @ApiModelProperty(value = "设备异常现况时间合计")
    private String     totalEquipmentAbnormalTime;
}
